package br.com.eventest.model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the seguranca database table.
 * 
 */
@Entity
@NamedQueries(@NamedQuery(name="Seguranca.findAll",query="SELECT s FROM Seguranca as s WHERE s.seguranca IS NULL ORDER BY s.ordem"))
public class Seguranca implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private Integer codigo;

	private String acao;

	private String descricao;

	private Integer ordem;

	private String pagina;

	private String situacao;

	//bi-directional many-to-one association to Permissoe
	@OneToMany(mappedBy="seguranca")
	private List<Permissoe> permissoes;

	//bi-directional many-to-many association to Grupo
    @ManyToMany
	@JoinTable(
		name="permissoes"
		, joinColumns={
			@JoinColumn(name="menu")
			}
		, inverseJoinColumns={
			@JoinColumn(name="grupo")
			}
		)
	private List<Grupo> grupos;

	//bi-directional many-to-one association to Seguranca
    @ManyToOne
	@JoinColumn(name="codigo_pai")
	private Seguranca seguranca;

	//bi-directional many-to-one association to Seguranca
	@OneToMany(mappedBy="seguranca",fetch=FetchType.EAGER)
	private List<Seguranca> segurancas;

    public Seguranca() {
    }

	public Integer getCodigo() {
		return this.codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public String getAcao() {
		return this.acao;
	}

	public void setAcao(String acao) {
		this.acao = acao;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Integer getOrdem() {
		return this.ordem;
	}

	public void setOrdem(Integer ordem) {
		this.ordem = ordem;
	}

	public String getPagina() {
		return this.pagina;
	}

	public void setPagina(String pagina) {
		this.pagina = pagina;
	}

	public String getSituacao() {
		return this.situacao;
	}

	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}

	public List<Permissoe> getPermissoes() {
		return this.permissoes;
	}

	public void setPermissoes(List<Permissoe> permissoes) {
		this.permissoes = permissoes;
	}
	
	public List<Grupo> getGrupos() {
		return this.grupos;
	}

	public void setGrupos(List<Grupo> grupos) {
		this.grupos = grupos;
	}
	
	public Seguranca getSeguranca() {
		return this.seguranca;
	}

	public void setSeguranca(Seguranca seguranca) {
		this.seguranca = seguranca;
	}
	
	public List<Seguranca> getSegurancas() {
		return this.segurancas;
	}

	public void setSegurancas(List<Seguranca> segurancas) {
		this.segurancas = segurancas;
	}
	
}